Effect of zeros on step response

Now we'll investigate what happens as we add a zero to our system

Consider the second order system with a zero

$$ T(s) = \frac{9/z (s + z)}{s^2 + 2s +9} $$

where $ z = 3, 5, 10, -2$


In [3]:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal

In [4]:
zeros = np.array([3, 5, 10, -2])
fig, ax = plt.subplots()
for z in zeros:
    num = 9/z * np.array([1, z])
    den = np.array([1, 2, 9])
    t, resp = signal.step((num, den))
    ax.plot(t, resp,  label='z = {}'.format(z))
    
ax.grid()
ax.legend()
plt.show()


Smaller zeros cause a larger overshoot (larger derivative component of response)

The larger the zero the less of an impact it has (moving to the left is better)

RHP zeros are non-minimum phase and cause the system to initially go in the opposite direction. This might be bad for your system. Imagine your car initially going right whenever you steer left.